package clases;

import java.util.List;
import persistencia.PUsuario;

public class Usuario {

    private int id;
    private String nombre;
    private String apellido;
    private String telefono;
    private String mail;
    private boolean activo;

    //Constructor vacío
    public Usuario() {
        //No tiene ningún atributo para el uso de Beans
        this.nombre = "";
        this.apellido = "";
        this.telefono = "";
        this.mail = "";
    }

    //Constructor completo
    public Usuario(String nombre, String apellido, String telefono, String mail) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.telefono = telefono;
        this.mail = mail;
    }

    //Get y Set de las propiedades
    //--------------------------------------------------------------------------
    public boolean isActivo() {
        return activo;
    }

    public void setActivo(boolean activo) {
        this.activo = activo;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    //Devuelve un usuario por su id
    public static Usuario seleccionarPorId(int id) {
        Usuario usuario = PUsuario.seleccionarPorIdBD(id);
        return usuario;
    }

    //Devuelve una lista de usuarios según una palábra de búsqueda
    public static List<Usuario> seleccionarBusqueda(String palabra, int inicio, int numero) {
        List<Usuario> listUsuario = PUsuario.seleccionarBusquedaBD(palabra, inicio, numero);
        return listUsuario;
    }

    //Devuelve el número de usuarios que hay según una palábra de búsqueda
    public static int contarBusqueda(String palabra) {
        int total = PUsuario.contarBusquedaBD(palabra);
        return total;
    }

    //Actualiza los datos de un usuario
    public boolean actualizar() {
        return PUsuario.actualizarBD(this);
    }

    //Da de alta un nuevo usuario en la base de datos
    public boolean nuevo() {
        return PUsuario.nuevoBD(this);
    }

    @Override
    public String toString() {
        return nombre + " " + apellido + " [" + mail + "]";
    }
}
